<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//24.1.1 什么是可维护的代码
			    //可理解性
			    //直观性
			    //可适应性
			    //可扩展性
			    //可调试性
			    
			//24.1.2 代码约定
			    //1.可读性，缩进和注释
			    //2.变量名和函数名，要有意义
			    //3.变量类型透明
			        //使用初始化
			            var found = false;
			        //使用匈牙利标记法指定变量类型
			            var bFound = false;
			        //使用类型注释
			            var found /*:Boolean*/ =  false;
			
			//24.1.3 松散耦合
			    //1.解耦HTML/JavaScript，尽量避免使用内联<script>或者使用HTML属性分配事件处理程序
			    //2.解耦CSS/JavaScript，尽量避免使用JavaScript直接更改某些样式，例如element.style.color = 'red'
			    //  虽然不可能完全将CSS和JavaScript解耦，但是可以通过动态更改样式类来实现耦合更松散，例如element.className = 'edit'
			    //  注意避免使用CSS表达式
			    //3.解耦应用逻辑/事件处理程序
			    //  勿将 event 对象传给其他方法；只传来自 event 对象中所需的数据
			    //  任何可以在应用层面的动作都应该可以在不执行任何事件处理程序的情况下进行
			    //  任何事件处理程序都应该处理事件，然后将处理转交给应用逻辑
			              //耦合
	                      function handleKeyPress(event){ 
								 event = EventUtil.getEvent(event); 
								 if (event.keyCode == 13){ 
									 var target = EventUtil.getTarget(event); 
									 var value = 5 * parseInt(target.value); 
									 if (value > 10){ 
									     document.getElementById('errot-msg').style.display = 'block';
									 }
							     }
			              }
	                      //解耦
	                      function validateValue(value){
	                      	  value = 5 * parseInt(target.value);
	                      	  if (value > 10){ 
								   document.getElementById('errot-msg').style.display = 'block';
							  }
	                      }
	                      function handleKeyPress(event){ 
								 event = EventUtil.getEvent(event); 
								 if (event.keyCode == 13){ 
									 var target = EventUtil.getTarget(event); 
								     
							     }
			              }
	          //24.1.4  编程实践
	               //1.尊重对象的所有权，不要修改不属于你创建的对象
	               //2.避免使用全局变量
	                   //建议使用
	                   var Wrox = {};
	                   Worx.ProJs = {};
	                   Worx.ProJs.EventUntil = {...};
	                   Worx.ProJs.CookieUntil = {...};
	                //3.避免与null进行比较
	                //4.使用常量
		</script>
	</body>
</html>
